﻿using GDM.Hogar.Aplicacion.Properties;
using GDM.Hogar.Managers.Contratos;
using System;

namespace GDM.Hogar.Aplicacion.Formularios.Configuracion
{
    public partial class FrmHogar
#if DEBUG
 : AdaptadorFrm
#else
        : Frmbase
#endif
    {
        private readonly IHogarManager _hogarManager;

        public FrmHogar(IHogarManager hogarManager)
        {
            if (hogarManager == null)
                throw new ArgumentNullException("hogarManager");

            _hogarManager = hogarManager;
            InitializeComponent();
        }

        public Entidades.Hogar Hogar { get; private set; }

        protected override string Titulo
        {
            get
            {
                return "Hogar";
            }
        }

        private void ActualizarHogar()
        {
            try
            {
                _hogarManager.ActualizarHogar(Hogar);
                MostrarMensajeExito();
            }
            catch (InvalidOperationException ex)
            {
                MostrarMensajeError(ex.Message);
            }
            catch (Exception ex)
            {
                MostrarMensajeError(Resources.GuardarHogar_Error);
            }
        }

        private void BindearDatosHogar()
        {
            txtNombre.DataBindings.Add("Text", Hogar, "Nombre");
            txtDescripcion.DataBindings.Add("Text", Hogar, "Descripcion");
            txtTelefono.DataBindings.Add("Text", Hogar, "Telefono");
            txtDireccion.DataBindings.Add("Text", Hogar, "Direccion");
        }

        private void FrmHogar_Load(object sender, EventArgs e)
        {
            Hogar = _hogarManager.ObtenerHogar();
            BindearDatosHogar();
        }

        private void btnGuardarHogar_Click(object sender, EventArgs e)
        {
            if (!hogarValidator.Validate()) return;

            ActualizarHogar();
        }
    }
}